package org.ccay.manage.i18n.dao;

import java.util.List;

import org.ccay.core.base.BatchVO;
import org.ccay.core.base.PageVO;
import org.ccay.core.base.PagedResult;
import org.ccay.i18n.I18nVO;

/**
 * 国际化资源管理 dao接口
 * 
 * 
 * @since 2011-12-5
 */
public interface II18nManageDao {

	/**
	 * 查找国际化资源
	 * 
	 * 
	 * @since 2011-12-5
	 * @param queryMessage
	 * @return
	 */
	public List<I18nVO> findI18nList(I18nVO queryI18n);
	

	/**
	 * 分页查找国际化资源
	 * 
	 * 
	 * @since 2011-12-5
	 * @param queryI18n
	 * @param pageVO
	 * @return
	 */
	public PagedResult<I18nVO> findPagedI18nList(I18nVO queryI18n,PageVO pageVO);
	
	
	/**
	 * 语言及语言下的I18N重复校验
	 * @param batchItems
	 * @return 重复的key
	 */
	public List<String> checkLauguageI18nKeyUnique(BatchVO<I18nVO> batchItems);
	
	/**
	 * 创建国际化资源
	 * 
	 * @since 2011-12-5
	 * @param newI18n
	 * @return
	 */
	public int createI18n(I18nVO newI18n);

	/**
	 * 更新国际化资源
	 * 
	 * 
	 * @since 2011-12-5
	 * @param existedI18n
	 * @return
	 */
	public int updateI18n(I18nVO existedI18n);

	/**
	 * 删除国际化资源
	 * 
	 * 
	 * @since 2011-12-5
	 * @param existedI18n
	 * @return
	 */
	public int deleteI18n(I18nVO existedI18n);

	/**
	 * 删除国际化资源
	 * 
	 * 
	 * @since 2011-12-5
	 * @param existedI18n
	 * @return
	 */
	public int deleteI18ns(List<I18nVO> existedI18ns);

	/**
	 * 查看国际化资源
	 * 
	 * 
	 * @since 2011-12-5
	 * @param queryI18n
	 * @return
	 */
	public I18nVO findI18n(I18nVO queryI18n);


	/**
	 * 批量更新
	 * 
	 * 
	 * @since 2011-12-22
	 * @param existedI18ns
	 */
	public void updateI18ns(List<I18nVO> existedI18ns);

	/**
	 * 批量创建
	 * 
	 * 
	 * @since 2011-12-22
	 * @param newI18ns
	 */
	public void createI18ns(List<I18nVO> newI18ns);
	
	
	/**
	 * 滚动加载
	 * 
	 * @since 2012-12-22
	 * @param queryI18n
	 * @param pageVO
	 * @param totalRows
	 */
	public PagedResult<I18nVO> findRangeI18nList(I18nVO queryI18n, PageVO pageVO);
	
	/**
	 * 滚动加载过滤
	 * 
	 * @since 2012-12-22
	 * @param queryI18n
	 * @param pageVO
	 * @param totalRows
	 */
	public PagedResult<I18nVO> findRangeI18nListFilter(I18nVO queryI18n, PageVO pageVO);
	
}
